package com.cloudfun.campusshare.common.model.dto.kjt;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import lombok.Builder;
import lombok.Data;

import java.util.Map;

/**
 * Created by Huqin on 2020/8/4
 */
@Data
@Builder
@ApiModel("快捷通子商户结算银行账户变更请求DTO")
public class KjtSubMerchantChangeBankCardReqDTO {

    /**
     * [6,32]
     * 平台发起子商户结算银行账户变更请求的订单流水号
     */
    @JsonProperty("out_trade_no")
    private String outTradeNo;

    /**
     * 请求号
     * 平台用户ID，平台方分配给用户的唯一标识
     */
    @JsonProperty("partner_user_id")
    private String partnerUserId;

    /**
     * 快捷通分配给平台方子商户的会员ID
     * 也作为登录快捷通收银台的登录账号
     */
    @JsonProperty("identity_id")
    private String identityId;

    /**
     * [6,32]
     * 变更新的结算银行卡号，不支持信用卡和存折账号，只支持借记卡
     */
    @JsonProperty("new_bankcard_no")
    private String newBankcardNo;

    /**
     * [2,32]
     * 银行卡户名
     * 1、企业：
     * 与公司名称一致;
     * 2、个体工商户：
     * 如果是对私银行卡，与法人姓名一致，如果是对公银行卡，与个体工商户企业名称一致;
     * 3、个人商家：
     * 银行卡户名必须与注册的姓名一致
     */
    @JsonProperty("bank_account_name")
    private String bankAccountName;

    /**
     * String(2,16)
     * 开户银行编码
     */
    @JsonProperty("bank_code")
    private String bankCode;

    /**
     * [2,16]
     * 开户行名称
     */
    @JsonProperty("bank_name")
    private String bankName;

    /**
     * [2,16]
     * 开户行省份
     */
    @JsonProperty("bank_prov")
    private String bankProv;

    /**
     * [2,32]
     * 开户行城市
     */
    @JsonProperty("bank_city")
    private String bankCity;

    /**
     * [2,128]
     * 开户银行支行名称
     */
    @JsonProperty("bank_branch_name")
    private String bankBranchName;

    /**
     * 银行卡类别，B：对公，C：对私
     * 企业只能使用对公卡类型
     */
    @JsonProperty("company_or_person")
    private String companyOrPerson;

    /**
     * [16-100]
     * 结算银行账户信息变更表，对公卡，加盖公章，对私卡手写签字（填写ftp地址为图片绝对路径+文件名,支持格式：jpg、png、bmp、jpeg,
     * ftp上传地址请联系技术支持并提供商户服务器外网ip）注意别覆盖其它文件
     */
    @JsonProperty("bank_account_change_photo")
    private String bankAccountChangePhoto;

    /**
     * 可不传
     * <p>
     * 扩展备注，商户自定义，如需使用，请与技术支持联系
     * ACCOUNT_TYPE:资金账户类型，开通多种业务，用半角逗号连接
     * 101：个人一般户（充转提）
     * 102：个人结算户（收单业务）
     * 201：企业一般户（充转提）
     * 202：企业结算户（收单业务）
     * 企业、个体工商户支持账户类型：201、202
     * 个人商家支持账户类型：101、102
     * </p>
     * 不传默认仅开通结算户，请根据实际情况开户
     */
    @JsonProperty("extension")
    private Map<String, String> extension;

    /**
     * 可不传
     * [200]
     * 服务器异步通知地址，快捷通主动通知商户网站里指定的URL http/https路径，当订单完成后会回调商户并告知订单状态
     */
    @JsonProperty("notify_url")
    private String notifyUrl;
}
